Current File : //usr/lib/python3/dist-packages/twisted/python/test/__pycache__/test_shellcomp.cpython-312.pyc
�

Ϫ�f�R��"�dZddlZddlmZddlmZmZddlmZm	Z	m
Z
ddlmZm
Z
mZmZddlmZGd�d	e�ZGd
�de��Zd
�ZGd�dej,�ZGd�dej,�ZGd�dej,�ZGd�de
j4�ZGd�de
j4�ZGd�de�Zd�ZGd�de
j4�ZGd�de
j4�Z Gd�d e
j4�Z!Gd!�d"e�Z"d#Z#d$Z$y)%z*
Test cases for twisted.python._shellcomp
�N)�BytesIO)�List�Optional)�
_shellcomp�reflect�usage)�
CompleteFiles�CompleteList�	Completer�Completions)�unittestc��eZdZdZd�Zy)�ZshScriptTestMetaz*
    Metaclass of ZshScriptTestMixin.
    c�|�d�}d|vr|dD]\}}|||�}||d|z<�tj||||�S)Nc������fd�}|S)Nc���t|���S)N)�test_genZshFunction)�self�cmdName�optionsFQPNs ���D/usr/lib/python3/dist-packages/twisted/python/test/test_shellcomp.py�runTestz<ZshScriptTestMeta.__new__.<locals>.makeTest.<locals>.runTests���*�4��+�F�F��)rrrs`` r�makeTestz+ZshScriptTestMeta.__new__.<locals>.makeTests���
G��Nr�generateFor�test_genZshFunction_)�type�__new__)�cls�name�bases�attrsrrr�tests        rrzZshScriptTestMeta.__new__s]��	��E�!�(-�m�(<�
?�$������5��:>��,�w�6�7�
?��|�|�C��u�e�4�4rN)�__name__�
__module__�__qualname__�__doc__rrrrrrs���5rrc��eZdZdZy)�ZshScriptTestMixina�
    Integration test helper to show that C{usage.Options} classes can have zsh
    completion functions generated for them without raising errors.

    In your subclasses set a class variable like so::

      #            | cmd name | Fully Qualified Python Name of Options class |
      #
      generateFor = [('conch',  'twisted.conch.scripts.conch.ClientOptions'),
                     ('twistd', 'twisted.scripts.twistd.ServerOptions'),
                     ]

    Each package that contains Twisted scripts should contain one TestCase
    subclass which also inherits from this mixin, and contains a C{generateFor}
    list appropriate for the scripts in that package.
    N)r%r&r'r(rrrr*r*(s��rr*)�	metaclassc	��t�}|jtjd|�	t	j
|��}	|jgd��|jd�|jd�|jdt|j!d���|jd�|j#�t%|d	�r�|j&D]�\}}}}		|j|d
ddg�|jd�|jd�|jdt|j!d���|jd�|j#���|j)�y#t$r}tjd|����d}~wwxYw#t$r}tjd|f��d}~wt$rY��jwxYw#t$r}tjd
|f��d}~wt$rY��wxYw)aI
    Generate completion functions for given twisted command - no errors
    should be raised

    @type cmdName: C{str}
    @param cmdName: The name of the command-line utility e.g. 'twistd'

    @type optionsFQPN: C{str}
    @param optionsFQPN: The Fully Qualified Python Name of the C{Options}
        class to be tested.
    �_shellCompFilez.Couldn't import or instantiate Options class: N���--_shell-completion�zsh:2zSystemExit not raisedz&ImportError calling parseOptions(): %sr��subCommandsr/r0zzsh:3z4ImportError calling parseOptions() on subcommand: %s)r�patchr�Optionsr�namedAny�	Exceptionr
�SkipTest�parseOptions�fail�ImportError�
SystemExit�seek�assertEqual�len�read�truncate�hasattrr3�
flushWarnings)
rrr�
outputFile�o�e�cmd�short�parser�docs
          rrr;s�����J��J�J�u�}�}�.�
�;�
�)�G���[�)�+��
+�	���;�<�	
�	�	�)�*��O�O�A�����Q��J�O�O�A�.�/�0��O�O�A�������q�-� �'(�}�}�	"�#�C����
3�����R�)>��H�I��	�	�1�2��O�O�A�����Q��J�O�O�A�$6� 7�8��O�O�A�����!�%	"�,	�����]�
����EF�H�
�	
��
���P���� H�1�$�O�O���
��
���
��'�'�M�PQ�t�����
��
�sS�E>�F'�)G�>	F$�F�F$�'	G�0G�G�G�	H	�#G:�:H	�H	c�^�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zy)�ZshTestsz'
    Tests for zsh completion code
    c�T�t�}tj|dt��}tj
jj�}|jtj
j�|j|j|�|j|jttj
j��|j|jtj
j�tj
jj�}|jtj
j�|j|j|�|j|jtj
j�y)zi
        Are `compData' attributes you can place on Options classes
        picked up correctly?
        �aceN)�FighterAceExtendedOptionsr�ZshArgumentsGeneratorr�FighterAceOptions�compData�descriptions�copy�updater>�multiUse�set�mutuallyExclusive�
optActions�extraActions)r�opts�agrSrYs     r�test_accumulateMetadataz ZshTests.test_accumulateMetadata�s#��
)�*��
�
-�
-�d�E�7�9�
E��(�1�1�>�>�C�C�E�����5�>�>�K�K�L�������,�7�������c�*;�*D�*D�*M�*M�&N�O����� � �"3�"<�"<�"N�"N�	
�'�/�/�:�:�?�?�A�
����3�<�<�G�G�H�������
�3�������*;�*D�*D�*Q�*Q�Rrc���Gd�dt�}|�}tj|dt��}hd�hd�hd�hd�hd�d	�}|j	|j
|�y
)z�
        Exercise a corner-case of ZshArgumentsGenerator.makeExcludesDict()
        where the long option name already exists in the `excludes` dict being
        built.
        c�.�eZdZgd�gZegd�g��Zy)�GZshTests.test_mutuallyExclusiveCornerCase.<locals>.OddFighterAceOptions)�anatraNz0Select the Anatra DS as your dogfighter aircraft)ra�fokker�albatros�spad�bristol�rXN)r%r&r'�optFlagsrrRrrr�OddFighterAceOptionsr`�s!��
U��H�#�#V�"W��HrrhrN>�b�f�srdrarbre>�arirjrkrdrbrerc>rlrjrkrdrarbrc>rlrirkrdrarerc>rlrirjrarbrerc)rcrarerbrdN)rOrrPrr>�excludes)rrhr[r\�expecteds     r� test_mutuallyExclusiveCornerCasez)ZshTests.test_mutuallyExclusiveCornerCase�s^��		�#<�		�$�%��
�
-�
-�d�E�7�9�
E��O�S�N�N�N�
��	
������h�/rc�6�t�}tj|dt��}|j	d|j
�|j	d|j�|j	d|j�|j	d|j�y)z�
        We pick up options that are only defined by having an
        appropriately named method on your Options class,
        e.g. def opt_foo(self, foo)
        rN�nocrash�
difficultyN)rOrrPr�assertIn�flagNameToDefinition�allOptionsNameToDefinition�paramNameToDefinition)rr[r\s   r� test_accumulateAdditionalOptionsz)ZshTests.test_accumulateAdditionalOptions�sr��)�*��
�
-�
-�d�E�7�9�
E���
�
�i��!8�!8�9��
�
�i��!>�!>�?��
�
�l�B�$<�$<�=��
�
�l�B�$A�$A�Brc��Gd�dt�}|jttj|�dt��Gd�dt�}|jttj|�dt��y)z\
        Using a parameter/flag name that doesn't exist
        will raise an error
        c�"�eZdZeddi��Zy)�0ZshTests.test_verifyZshNames.<locals>.TmpOptions�detaillN)rY�r%r&r'rrRrrr�
TmpOptionsrz�s��"�y�$�.?�@�Hrr}rNc� �eZdZedg��Zy)�1ZshTests.test_verifyZshNames.<locals>.TmpOptions2)�foo�barrfNr|rrr�TmpOptions2r�s��#�n�5E�F�Hrr�N)rO�assertRaises�
ValueErrorrrPr)rr}r�s   r�test_verifyZshNameszZshTests.test_verifyZshNames�sn��	A�2�	A�	
����
�8�8�*�,��w�y�	
�	G�3�	G�
	
�����,�,��M���I�	
rc�(�t�}|jtjd|�|jtdgd��t�}|j
t|j�|jt|j��y)zt
        Generate a completion function, and test the textual output
        against a known correct output
        r-�argv)�sillyr/r0r1N)rr4rr5�sys�SimpleProgOptionsr�r<r9r>�testOutput1�getvalue�rrDr[s   r�test_zshCodezZshTests.test_zshCode�sh��
�Y�
��
�
�5�=�=�"2�J�?��
�
�3�� M�N� �"�����*�d�&7�&7�8�����j�&9�&9�&;�<rc�(�t�}|jtjd|�|jtdgd��t�}|j
t|j�|jt|j��y)z�
        Generate a completion function with subcommands,
        and test the textual output against a known correct output
        r-r�)�silly2r/r0r1N)rr4rr5r��SimpleProgWithSubcommandsr�r<r9r>�testOutput2r�r�s   r�test_zshCodeWithSubszZshTests.test_zshCodeWithSubs�sh��
�Y�
��
�
�5�=�=�"2�J�?��
�
�3�� N�O�(�*�����*�d�&7�&7�8�����j�&9�&9�&;�<rc�*�t�}|jtjd|�t	�}|jt|jgd��|jd�|jdt|jd���y)zx
        Completion still happens even if a command-line is given
        that would normally throw UsageError.
        r-)�--fokker�server�--unknown-optionz--unknown-option2r0�zsh:5rr2N�rr4rr5rQr�r<r9r=r>r?r@r�s   r�test_incompleteCommandLinez#ZshTests.test_incompleteCommandLine�ss��
�Y�
��
�
�5�=�=�"2�J�?� �"���������
�	
�	���������C�
���� 2�3�4rc�l�t�}|jtjd|�t	�}|jt|jgd��|jd�|jdt|jd���|jd�|j�y)z�
        Completion still happens even if a command-line is given
        that would normally throw UsageError.

        The existence of --unknown-option prior to the subcommand
        will break subcommand detection... but we complete anyway
        r-)r�r�r��
--list-serverr0r�rr2N)
rr4rr5rQr�r<r9r=r>r?r@rAr�s   r� test_incompleteCommandLine_case2z)ZshTests.test_incompleteCommandLine_case2s����Y�
��
�
�5�=�=�"2�J�?� �"���������
�	
�	���������C�
���� 2�3�4���������rc�*�t�}|jtjd|�t	�}|jt|jgd��|jd�|jdt|jd���y)z�
        Completion still happens even if a command-line is given
        that would normally throw UsageError.

        Break subcommand detection in a different way by providing
        an invalid subcommand name.
        r-)r�zunknown-subcommandr�r0zzsh:4rr2Nr�r�s   r� test_incompleteCommandLine_case3z)ZshTests.test_incompleteCommandLine_case34ss���Y�
��
�
�5�=�=�"2�J�?� �"���������
�
	
�	���������C�
���� 2�3�4rc�*�t�}|jtjd|�t	�}|jt|jgd��|jd�|jdt|jd���y)z�
        Ensure the optimization which skips building the subcommand list
        under certain conditions isn't broken.
        r-)z--albar0r1rr2Nr�r�s   r�test_skipSubcommandListz ZshTests.test_skipSubcommandListOsp��
�Y�
��
�
�5�=�=�"2�J�?� �"�������)�)�+U�	
�	���������C�
���� 2�3�4rc��t�}tj|dd�}|jd�}|j	|d�y)zY
        Test corner case fetching an option description from a method docstring
        rNNr�)rQrrP�getDescriptionr>)rr[�argGen�descrs    r�test_poorlyDescribedOptMethodz&ZshTests.test_poorlyDescribedOptMethod_sB��!�"���1�1�$��t�D���%�%�g�.��	
�����(rc���Gd�dtj�}t�}|�}|j|d|�|j	t
|jgd��y)zu
        A C{Completer} with repeat=True may only be used as the
        last item in the extraActions list.
        c�v�eZdZejej
d��ej
�g��Zy)�2ZshTests.test_brokenActions.<locals>.BrokenActionsT)�repeat)rZN)r%r&r'rrrrRrrr�
BrokenActionsr�rs0��(�u�(�(�-�e�o�o�T�:�O�E�O�O�<M�N��Hrr�r-r.N)rr5rr4r�r�r9)rr�rDr[s    r�test_brokenActionszZshTests.test_brokenActionslsO��	�E�M�M�	�
�Y�
�����
�
�4�)�:�6������)�)�+O�	
rc��Gd�dtj�}|�}tj|dd�}|j	|jd�d�|j	|jd�d�y)	z~
        opt_* methods on Options classes should not override the
        data provided in optFlags or optParameters.
        c�,�eZdZgd�gZgd�gZd�Zd�Zy)�5ZshTests.test_optMethodsDontOverride.<locals>.Options)�flagrj�A flag)�param�pN�A paramc��y�zjunk descriptionNr�rs r�opt_flagz>ZshTests.test_optMethodsDontOverride.<locals>.Options.opt_flag���rc��yr�r)rr�s  r�	opt_paramz?ZshTests.test_optMethodsDontOverride.<locals>.Options.opt_param�r�rN)r%r&r'rg�
optParametersr�r�rrrr5r��s��/�0�H�<�=�M�
'�
'rr5rNNr�r�r�r�)rr5rrPr>r�)rr5r[r�s    r�test_optMethodsDontOverridez$ZshTests.test_optMethodsDontOverride~se��	'�e�m�m�	'��y���1�1�$��t�D������.�.�v�6��A�����.�.�w�7��CrN)r%r&r'r(r]rorwr�r�r�r�r�r�r�r�r�r�rrrrLrLsK���S�.0�>
C�
�6
=�
=�5�2�>5�65� )�
�$DrrLc��eZdZd�Zy)�EscapeTestsc��tj}d}|j||�d�d}|j||�d�y)z5
        Verify _shellcomp.escape() function
        �$z'$'zA--'$"\`--Bz"A--'\$\"\\\`--B"N)r�escaper>)r�escr$s   r�test_escapezEscapeTests.test_escape�sB������������T��E�*�������T��$=�>rN)r%r&r'r�rrrr�r��s��
?rr�c��eZdZdZd�Zy)�CompleterNotImplementedTestsz�
    Test that using an unknown shell constant with SubcommandAction
    raises NotImplementedError

    The other Completer() subclasses are tested in test_usage.py
    c�p�tj�}|jt|jdd�y)zM
        Using an unknown shellType should raise NotImplementedError
        N�bad_shell_type)r�SubcommandActionr��NotImplementedError�
_shellCode)r�actions  r�test_unknownShellz.CompleterNotImplementedTests.test_unknownShell�s0���,�,�.�������!2�!2�D�:J�	
rN)r%r&r'r(r�rrrr�r��s���
rr�c�$�eZdZdZgd�gZgd�gZy)�FighterAceServerOptionsz4
    Options for FighterAce 'server' subcommand
    )zlist-serverNz3List this server with the online FighterAce network)zpackets-per-secondNz+Number of update packets to send per second�20N)r%r&r'r(rgr�rrrr�r��s ���
	U��H�	
��Mrr�c	���eZdZUdZgd�gd�gd�gd�gd�gd�gd�gZeeeeed	<gd
�gd�gZ	eeeeed<d
de
dggZeddd�dggd�gde
dg�ied��g��Zd�Zy)rQzB
    Command-line options for an imaginary `Fighter Ace` game
    )rbrjz2Select the Fokker Dr.I as your dogfighter aircraft)rcrlz5Select the Albatros D-III as your dogfighter aircraft)rdrkz1Select the SPAD S.VII as your dogfighter aircraft)reriz4Select the Bristol Scout as your dogfighter aircraft)�physicsr�z$Enable secret Twisted physics engine)�jam�jz6Enable a small chance that your machine guns will jam!��verbose�vz1Verbose logging (may be specified more than once)rg)z
pilot-nameNzWhat's your name, Ace?zManfred von Richthofen)�detail�dz*Select the level of rendering detail (1-5)�3r�r�NzStart FighterAce game-server.zTwisted-PhysicszRendering detail level)r�r�r�)rbrcrdrer��12345zsaved game file to load�r��rSrVrXrYrZc��y)� Nrr�s r�	opt_sillyzFighterAceOptions.opt_silly�r�r)r%r&r'r(rgrr�str�__annotations__r�r�r3rr
r	rRr�rrrrQrQ�s����
	N�R�J�P�@�N�M�+�H�d�4���
�&�'��	Q�J�0�M�4��X�c�]�+�,��
�4�0�2Q�R��K��!2�>V�W���D�E��l�,?�+@�A�B�#�*C�D�E��H�rrQc�Z�eZdZdZgd�gZgd�gZeddided��i�	�Zd
�Z	d�Z
y)
rOz�
    Extend the options and zsh metadata provided by FighterAceOptions.
    _shellcomp must accumulate options and metadata from all classes in the
    hiearchy so this is important to test.
    )�	no-stallsNz+Turn off the ability to stall your aircraft)�
reality-levelNz)Select the level of physics reality (1-5)�5r�zCan't stall your planer�zPhysics reality levelr�)rSrYc��y)z8
        Select that you can't crash your plane
        Nrr�s r�opt_nocrashz%FighterAceExtendedOptions.opt_nocrash�r�rc��y)z+
        How tough are you? (1-10)
        Nr)rrrs  r�opt_difficultyz(FighterAceExtendedOptions.opt_difficultyr�rN)r%r&r'r(rgr�rrrRr�r�rrrrOrO�sI���S�S�H�Q��M��!�#;�<�#�Y�5L�%M�N��H�
�
rrOc� �tgd�d��S)N)�1�2r�zAccuracy'`?r�)r
rrr�_accuracyActionr�	s����}�=�=rc	��eZdZdZgd�gd�gd�gZgd�gd�gZeddd	�d
gddggegd
�d��ed�e	d��g��Z
d�Zy)r�z>
    Command-line options for a `Silly` imaginary program
    )�color�czTurn on color output)�gray�gzTurn on gray-scale outputr�)�optimizationNr�z&Select the level of optimization (1-5))�accuracyrlr�z"Select the level of accuracy (1-3)zColor onzOptimization level)r�r�r�r�r�)r�r�r��4r�z
Optimization?r�)r�r�zoutput filer�c��y)zM
        usage.Options does not recognize single-letter opt_ methods
        Nrr�s r�opt_XzSimpleProgOptions.opt_X+r�rN)r%r&r'r(rgr�rr
r�r	rRr�rrrr�r�sw���
	/�2�M��H�	N�D��M�
�)�;O�P���#�V�,�-�(�)���(�	
�$�-�8�9��H�rr�c��eZdZgd�gZy)�SimpleProgSub1)�sub-optrkzSub Opt OneN�r%r&r'rgrrrr�r�1�
��/�0�Hrr�c��eZdZgd�gZy)�SimpleProgSub2)r�rkzSub Opt TwoNr�rrrr�r�5r�rr�c�F�eZdZdgddggZdgddggd�gZdd	ed
gdd	edggZy	)
r�zsome-optionzother-optionrEz
some-paramzother-paramr�)z
another-param�PzYet Another Param�sub1Nz
Sub Command 1�sub2z
Sub Command 2)r%r&r'rgr�r�r�r3rrrr�r�9sM����.�#�!6�7�H�
��	���3��M�
��~��7�	��~��7��Krr�s�#compdef silly

_arguments -s -A "-*" \
':output file (*):_files -g "*"' \
"(--accuracy)-a[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
"(-a)--accuracy=[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
'(--color --gray -g)-c[Color on]' \
'(--gray -c -g)--color[Color on]' \
'(--color --gray -c)-g[Turn on gray-scale output]' \
'(--color -c -g)--gray[Turn on gray-scale output]' \
'--help[Display this help and exit.]' \
'--optimization=[Optimization level]:Optimization?:(1 2 3 4 5)' \
'*-v[Verbose logging (may be specified more than once)]' \
'*--verbose[Verbose logging (may be specified more than once)]' \
'--version[Display Twisted version and exit.]' \
&& return 0
s�#compdef silly2

_arguments -s -A "-*" \
'*::subcmd:->subcmd' \
':output file (*):_files -g "*"' \
"(--accuracy)-a[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
"(-a)--accuracy=[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
'(--another-param)-P[another-param]:another-param:_files' \
'(-P)--another-param=[another-param]:another-param:_files' \
'(--color --gray -g)-c[Color on]' \
'(--gray -c -g)--color[Color on]' \
'(--color --gray -c)-g[Turn on gray-scale output]' \
'(--color -c -g)--gray[Turn on gray-scale output]' \
'--help[Display this help and exit.]' \
'--optimization=[Optimization level]:Optimization?:(1 2 3 4 5)' \
'(--other-option)-o[other-option]' \
'(-o)--other-option[other-option]' \
'(--other-param)-p[other-param]:other-param:_files' \
'(-p)--other-param=[other-param]:other-param:_files' \
'--some-option[some-option]' \
'--some-param=[some-param]:some-param:_files' \
'*-v[Verbose logging (may be specified more than once)]' \
'*--verbose[Verbose logging (may be specified more than once)]' \
'--version[Display Twisted version and exit.]' \
&& return 0
local _zsh_subcmds_array
_zsh_subcmds_array=(
"sub1:Sub Command 1"
"sub2:Sub Command 2"
)

_describe "sub-command" _zsh_subcmds_array
)%r(r��ior�typingrr�twisted.pythonrrr�twisted.python.usager	r
rr�
twisted.trialr
rrr*r�TestCaserLr�r�r5r�rQrOr�r�r�r�r�r�r�rrr�<module>r
s����
��!�5�5�T�T�"�5��5�,�#4��&A�HSD�x� � �SD�l?�(�#�#�?�
�8�#4�#4�
�&�e�m�m��$"��
�
�"�J� 1��8>�
 ��
�
� �F1�U�]�]�1�1�U�]�]�1�� 1����& �r
Page Not Found
Parece que el enlace que apuntaba aquí no sirve. ¿Quieres probar con una búsqueda?
¡Hola!